Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: add build workflow for debug nodejs #6103

Merged
merged 4 commits into from
Nov 10, 2023
Merged

Conversation

nazarhussain
Copy link
Contributor

Motivation

More flexible debugging for native nodejs modules.

Description

  • We often need to debug exceptions which are on the native bindings
  • NodeJS debug build provide more information in case of the segfaults or related errors
  • We don't have any runner available to have builtin support for debug build for nodejs
  • The Github actions setup-node also don't provide this support.
  • The idea is the build once a debug level nodejs binary on same runner we use for tests and upload it to some bucket
  • We can then download that binary and in case we need to debug something.

Steps to test or reproduce

-Run all tests.

@nazarhussain nazarhussain requested a review from a team as a code owner November 10, 2023 13:59
@nazarhussain nazarhussain changed the title Add build workflow for debug nodejs build: add build workflow for debug nodejs Nov 10, 2023
@nazarhussain nazarhussain self-assigned this Nov 10, 2023
working-directory: 'nodejs'

- name: Compile the nodejs
run: make -j4
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to use make -j$(nproc --all) here to default to the number of available cores?

Comment on lines 42 to 46
- name: Copy nodejs build
run: make install
working-directory: 'nodejs'
env:
DESTDIR: ${{ github.workspace }}/nodejs-debug-build-${{ github.event.inputs.version }}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Running make install only moves the Release version to the DESTDIR.

https://github.com/nodejs/node/blob/609cd7f5bf6c1b2373353fb3fcaed2a3bbe1efa7/tools/install.py#L146

You need to also copy nodejs/out/Debug/node binary over the Release binary in DESTDIR/lib/node (pretty sure about that dest path but not 1000%)

Copy link
Member

@matthewkeil matthewkeil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!! 🚀

@nazarhussain nazarhussain merged commit a06c719 into unstable Nov 10, 2023
15 checks passed
@nazarhussain nazarhussain deleted the nh/build-debug-node branch November 10, 2023 15:32
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 82b21de Previous: 408e925 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 565.31 us/op 763.19 us/op 0.74
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 119.14 us/op 162.50 us/op 0.73
BLS verify - blst-native 1.3970 ms/op 1.5847 ms/op 0.88
BLS verifyMultipleSignatures 3 - blst-native 2.9746 ms/op 3.4671 ms/op 0.86
BLS verifyMultipleSignatures 8 - blst-native 6.5593 ms/op 7.4683 ms/op 0.88
BLS verifyMultipleSignatures 32 - blst-native 23.765 ms/op 26.754 ms/op 0.89
BLS verifyMultipleSignatures 64 - blst-native 45.378 ms/op 52.903 ms/op 0.86
BLS verifyMultipleSignatures 128 - blst-native 89.684 ms/op 100.99 ms/op 0.89
BLS deserializing 10000 signatures 969.65 ms/op 1.0627 s/op 0.91
BLS deserializing 100000 signatures 9.3983 s/op 10.617 s/op 0.89
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.4671 ms/op 1.6548 ms/op 0.89
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5852 ms/op 1.8846 ms/op 0.84
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.4539 ms/op 3.0814 ms/op 0.80
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.6131 ms/op 4.4263 ms/op 0.82
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.8996 ms/op 6.9254 ms/op 0.85
BLS aggregatePubkeys 32 - blst-native 28.784 us/op 33.549 us/op 0.86
BLS aggregatePubkeys 128 - blst-native 108.54 us/op 118.88 us/op 0.91
getAttestationsForBlock 51.080 ms/op 63.147 ms/op 0.81
isKnown best case - 1 super set check 600.00 ns/op 688.00 ns/op 0.87
isKnown normal case - 2 super set checks 585.00 ns/op 760.00 ns/op 0.77
isKnown worse case - 16 super set checks 582.00 ns/op 790.00 ns/op 0.74
CheckpointStateCache - add get delete 6.8420 us/op 7.9480 us/op 0.86
validate api signedAggregateAndProof - struct 3.1181 ms/op 4.6581 ms/op 0.67
validate gossip signedAggregateAndProof - struct 2.9945 ms/op 3.5345 ms/op 0.85
validate gossip attestation - vc 640000 1.4555 ms/op 1.6918 ms/op 0.86
batch validate gossip attestation - vc 640000 - chunk 32 183.50 us/op 208.12 us/op 0.88
batch validate gossip attestation - vc 640000 - chunk 64 183.88 us/op 188.56 us/op 0.98
batch validate gossip attestation - vc 640000 - chunk 128 175.81 us/op 166.05 us/op 1.06
batch validate gossip attestation - vc 640000 - chunk 256 181.50 us/op 161.30 us/op 1.13
pickEth1Vote - no votes 1.6687 ms/op 1.5542 ms/op 1.07
pickEth1Vote - max votes 16.566 ms/op 13.324 ms/op 1.24
pickEth1Vote - Eth1Data hashTreeRoot value x2048 20.836 ms/op 23.075 ms/op 0.90
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 47.630 ms/op 38.433 ms/op 1.24
pickEth1Vote - Eth1Data fastSerialize value x2048 977.29 us/op 708.45 us/op 1.38
pickEth1Vote - Eth1Data fastSerialize tree x2048 7.0185 ms/op 7.6889 ms/op 0.91
bytes32 toHexString 1.0070 us/op 762.00 ns/op 1.32
bytes32 Buffer.toString(hex) 373.00 ns/op 327.00 ns/op 1.14
bytes32 Buffer.toString(hex) from Uint8Array 677.00 ns/op 549.00 ns/op 1.23
bytes32 Buffer.toString(hex) + 0x 400.00 ns/op 317.00 ns/op 1.26
Object access 1 prop 0.29300 ns/op 0.19600 ns/op 1.49
Map access 1 prop 0.23000 ns/op 0.16200 ns/op 1.42
Object get x1000 11.086 ns/op 8.7990 ns/op 1.26
Map get x1000 0.84300 ns/op 0.74900 ns/op 1.13
Object set x1000 84.001 ns/op 63.234 ns/op 1.33
Map set x1000 64.593 ns/op 52.765 ns/op 1.22
Return object 10000 times 0.39130 ns/op 0.25600 ns/op 1.53
Throw Error 10000 times 4.5341 us/op 4.2641 us/op 1.06
fastMsgIdFn sha256 / 200 bytes 4.0960 us/op 3.6370 us/op 1.13
fastMsgIdFn h32 xxhash / 200 bytes 433.00 ns/op 374.00 ns/op 1.16
fastMsgIdFn h64 xxhash / 200 bytes 456.00 ns/op 437.00 ns/op 1.04
fastMsgIdFn sha256 / 1000 bytes 12.690 us/op 13.068 us/op 0.97
fastMsgIdFn h32 xxhash / 1000 bytes 525.00 ns/op 520.00 ns/op 1.01
fastMsgIdFn h64 xxhash / 1000 bytes 572.00 ns/op 477.00 ns/op 1.20
fastMsgIdFn sha256 / 10000 bytes 117.98 us/op 109.76 us/op 1.07
fastMsgIdFn h32 xxhash / 10000 bytes 2.3520 us/op 2.1700 us/op 1.08
fastMsgIdFn h64 xxhash / 10000 bytes 1.5480 us/op 1.5010 us/op 1.03
send data - 1000 256B messages 25.991 ms/op 24.927 ms/op 1.04
send data - 1000 512B messages 33.608 ms/op 32.824 ms/op 1.02
send data - 1000 1024B messages 48.509 ms/op 50.685 ms/op 0.96
send data - 1000 1200B messages 51.195 ms/op 44.488 ms/op 1.15
send data - 1000 2048B messages 56.538 ms/op 51.579 ms/op 1.10
send data - 1000 4096B messages 50.875 ms/op 39.381 ms/op 1.29
send data - 1000 16384B messages 131.97 ms/op 132.31 ms/op 1.00
send data - 1000 65536B messages 488.96 ms/op 455.57 ms/op 1.07
enrSubnets - fastDeserialize 64 bits 2.2610 us/op 1.7010 us/op 1.33
enrSubnets - ssz BitVector 64 bits 632.00 ns/op 556.00 ns/op 1.14
enrSubnets - fastDeserialize 4 bits 269.00 ns/op 253.00 ns/op 1.06
enrSubnets - ssz BitVector 4 bits 653.00 ns/op 548.00 ns/op 1.19
prioritizePeers score -10:0 att 32-0.1 sync 2-0 149.51 us/op 127.96 us/op 1.17
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 192.94 us/op 156.79 us/op 1.23
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 239.65 us/op 207.43 us/op 1.16
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 499.26 us/op 353.00 us/op 1.41
prioritizePeers score 0:0 att 64-1 sync 4-1 458.02 us/op 374.75 us/op 1.22
array of 16000 items push then shift 1.9113 us/op 1.7884 us/op 1.07
LinkedList of 16000 items push then shift 11.525 ns/op 9.9860 ns/op 1.15
array of 16000 items push then pop 134.47 ns/op 88.727 ns/op 1.52
LinkedList of 16000 items push then pop 10.816 ns/op 8.9740 ns/op 1.21
array of 24000 items push then shift 2.9862 us/op 2.6662 us/op 1.12
LinkedList of 24000 items push then shift 12.806 ns/op 9.6900 ns/op 1.32
array of 24000 items push then pop 218.12 ns/op 159.94 ns/op 1.36
LinkedList of 24000 items push then pop 12.357 ns/op 9.4030 ns/op 1.31
intersect bitArray bitLen 8 9.1530 ns/op 7.6410 ns/op 1.20
intersect array and set length 8 114.06 ns/op 63.939 ns/op 1.78
intersect bitArray bitLen 128 44.967 ns/op 35.518 ns/op 1.27
intersect array and set length 128 1.2688 us/op 979.14 ns/op 1.30
bitArray.getTrueBitIndexes() bitLen 128 2.5440 us/op 1.7560 us/op 1.45
bitArray.getTrueBitIndexes() bitLen 248 3.8590 us/op 2.8070 us/op 1.37
bitArray.getTrueBitIndexes() bitLen 512 7.8860 us/op 5.3890 us/op 1.46
Buffer.concat 32 items 1.3030 us/op 1.0320 us/op 1.26
Uint8Array.set 32 items 2.8750 us/op 2.1420 us/op 1.34
Set add up to 64 items then delete first 5.5637 us/op 4.9845 us/op 1.12
OrderedSet add up to 64 items then delete first 7.4453 us/op 6.0625 us/op 1.23
Set add up to 64 items then delete last 6.1630 us/op 5.3080 us/op 1.16
OrderedSet add up to 64 items then delete last 7.8041 us/op 6.8924 us/op 1.13
Set add up to 64 items then delete middle 5.8441 us/op 5.1368 us/op 1.14
OrderedSet add up to 64 items then delete middle 9.1453 us/op 7.9689 us/op 1.15
Set add up to 128 items then delete first 11.820 us/op 10.521 us/op 1.12
OrderedSet add up to 128 items then delete first 16.403 us/op 13.374 us/op 1.23
Set add up to 128 items then delete last 12.074 us/op 9.6048 us/op 1.26
OrderedSet add up to 128 items then delete last 16.240 us/op 12.336 us/op 1.32
Set add up to 128 items then delete middle 11.022 us/op 9.8683 us/op 1.12
OrderedSet add up to 128 items then delete middle 21.770 us/op 18.761 us/op 1.16
Set add up to 256 items then delete first 23.401 us/op 20.191 us/op 1.16
OrderedSet add up to 256 items then delete first 33.137 us/op 28.268 us/op 1.17
Set add up to 256 items then delete last 22.991 us/op 19.930 us/op 1.15
OrderedSet add up to 256 items then delete last 32.328 us/op 27.532 us/op 1.17
Set add up to 256 items then delete middle 23.484 us/op 21.792 us/op 1.08
OrderedSet add up to 256 items then delete middle 58.125 us/op 53.000 us/op 1.10
transfer serialized Status (84 B) 2.2530 us/op 1.8710 us/op 1.20
copy serialized Status (84 B) 1.9010 us/op 1.5690 us/op 1.21
transfer serialized SignedVoluntaryExit (112 B) 2.4870 us/op 1.9280 us/op 1.29
copy serialized SignedVoluntaryExit (112 B) 2.0070 us/op 1.5650 us/op 1.28
transfer serialized ProposerSlashing (416 B) 3.6620 us/op 2.1090 us/op 1.74
copy serialized ProposerSlashing (416 B) 3.1490 us/op 2.0870 us/op 1.51
transfer serialized Attestation (485 B) 3.6210 us/op 2.1760 us/op 1.66
copy serialized Attestation (485 B) 3.1220 us/op 1.9880 us/op 1.57
transfer serialized AttesterSlashing (33232 B) 3.4310 us/op 2.2330 us/op 1.54
copy serialized AttesterSlashing (33232 B) 11.307 us/op 6.7330 us/op 1.68
transfer serialized Small SignedBeaconBlock (128000 B) 4.6720 us/op 3.3750 us/op 1.38
copy serialized Small SignedBeaconBlock (128000 B) 39.007 us/op 19.809 us/op 1.97
transfer serialized Avg SignedBeaconBlock (200000 B) 4.7010 us/op 3.7920 us/op 1.24
copy serialized Avg SignedBeaconBlock (200000 B) 51.591 us/op 27.034 us/op 1.91
transfer serialized BlobsSidecar (524380 B) 4.6930 us/op 3.5690 us/op 1.31
copy serialized BlobsSidecar (524380 B) 121.14 us/op 187.79 us/op 0.65
transfer serialized Big SignedBeaconBlock (1000000 B) 3.8750 us/op 3.7380 us/op 1.04
copy serialized Big SignedBeaconBlock (1000000 B) 176.30 us/op 281.27 us/op 0.63
pass gossip attestations to forkchoice per slot 3.9685 ms/op 5.1496 ms/op 0.77
forkChoice updateHead vc 100000 bc 64 eq 0 685.77 us/op 760.39 us/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 0 4.3818 ms/op 7.2541 ms/op 0.60
forkChoice updateHead vc 1000000 bc 64 eq 0 8.3804 ms/op 8.1313 ms/op 1.03
forkChoice updateHead vc 600000 bc 320 eq 0 4.9054 ms/op 4.7568 ms/op 1.03
forkChoice updateHead vc 600000 bc 1200 eq 0 4.8194 ms/op 4.8470 ms/op 0.99
forkChoice updateHead vc 600000 bc 7200 eq 0 7.2649 ms/op 5.5877 ms/op 1.30
forkChoice updateHead vc 600000 bc 64 eq 1000 14.318 ms/op 11.528 ms/op 1.24
forkChoice updateHead vc 600000 bc 64 eq 10000 13.631 ms/op 14.251 ms/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 300000 24.876 ms/op 16.867 ms/op 1.47
computeDeltas 500000 validators 300 proto nodes 7.2872 ms/op 7.1070 ms/op 1.03
computeDeltas 500000 validators 1200 proto nodes 7.3194 ms/op 7.1620 ms/op 1.02
computeDeltas 500000 validators 7200 proto nodes 6.9790 ms/op 7.2010 ms/op 0.97
computeDeltas 750000 validators 300 proto nodes 10.602 ms/op 10.955 ms/op 0.97
computeDeltas 750000 validators 1200 proto nodes 10.533 ms/op 10.706 ms/op 0.98
computeDeltas 750000 validators 7200 proto nodes 10.102 ms/op 11.711 ms/op 0.86
computeDeltas 1400000 validators 300 proto nodes 20.395 ms/op 22.290 ms/op 0.91
computeDeltas 1400000 validators 1200 proto nodes 24.015 ms/op 21.592 ms/op 1.11
computeDeltas 1400000 validators 7200 proto nodes 24.904 ms/op 19.903 ms/op 1.25
computeDeltas 2100000 validators 300 proto nodes 35.891 ms/op 29.750 ms/op 1.21
computeDeltas 2100000 validators 1200 proto nodes 34.241 ms/op 30.735 ms/op 1.11
computeDeltas 2100000 validators 7200 proto nodes 35.342 ms/op 30.548 ms/op 1.16
computeProposerBoostScoreFromBalances 500000 validators 3.6898 ms/op 3.5730 ms/op 1.03
computeProposerBoostScoreFromBalances 750000 validators 3.4209 ms/op 3.9065 ms/op 0.88
computeProposerBoostScoreFromBalances 1400000 validators 3.3016 ms/op 3.7118 ms/op 0.89
computeProposerBoostScoreFromBalances 2100000 validators 3.2851 ms/op 3.6901 ms/op 0.89
altair processAttestation - 250000 vs - 7PWei normalcase 2.3688 ms/op 4.2809 ms/op 0.55
altair processAttestation - 250000 vs - 7PWei worstcase 3.3199 ms/op 5.2672 ms/op 0.63
altair processAttestation - setStatus - 1/6 committees join 185.11 us/op 227.58 us/op 0.81
altair processAttestation - setStatus - 1/3 committees join 437.02 us/op 428.49 us/op 1.02
altair processAttestation - setStatus - 1/2 committees join 505.94 us/op 567.54 us/op 0.89
altair processAttestation - setStatus - 2/3 committees join 612.13 us/op 734.61 us/op 0.83
altair processAttestation - setStatus - 4/5 committees join 802.87 us/op 932.69 us/op 0.86
altair processAttestation - setStatus - 100% committees join 973.47 us/op 1.0705 ms/op 0.91
altair processBlock - 250000 vs - 7PWei normalcase 9.2461 ms/op 11.136 ms/op 0.83
altair processBlock - 250000 vs - 7PWei normalcase hashState 37.879 ms/op 40.472 ms/op 0.94
altair processBlock - 250000 vs - 7PWei worstcase 41.981 ms/op 53.383 ms/op 0.79
altair processBlock - 250000 vs - 7PWei worstcase hashState 103.97 ms/op 109.02 ms/op 0.95
phase0 processBlock - 250000 vs - 7PWei normalcase 2.8353 ms/op 3.9760 ms/op 0.71
phase0 processBlock - 250000 vs - 7PWei worstcase 35.002 ms/op 37.021 ms/op 0.95
altair processEth1Data - 250000 vs - 7PWei normalcase 769.75 us/op 708.02 us/op 1.09
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 21.392 us/op 16.879 us/op 1.27
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 77.800 us/op 73.759 us/op 1.05
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 26.748 us/op 24.014 us/op 1.11
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 19.396 us/op 17.036 us/op 1.14
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 160.40 us/op 238.42 us/op 0.67
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.4620 ms/op 1.9308 ms/op 0.76
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.0915 ms/op 2.2501 ms/op 0.93
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.8373 ms/op 1.9503 ms/op 0.94
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.6637 ms/op 4.1319 ms/op 0.89
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.9885 ms/op 3.1184 ms/op 0.96
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.9924 ms/op 8.0819 ms/op 0.74
Tree 40 250000 create 480.24 ms/op 590.98 ms/op 0.81
Tree 40 250000 get(125000) 233.51 ns/op 225.23 ns/op 1.04
Tree 40 250000 set(125000) 1.5418 us/op 1.5430 us/op 1.00
Tree 40 250000 toArray() 26.783 ms/op 26.901 ms/op 1.00
Tree 40 250000 iterate all - toArray() + loop 26.658 ms/op 25.669 ms/op 1.04
Tree 40 250000 iterate all - get(i) 82.787 ms/op 83.578 ms/op 0.99
MutableVector 250000 create 15.783 ms/op 21.343 ms/op 0.74
MutableVector 250000 get(125000) 7.7360 ns/op 7.3960 ns/op 1.05
MutableVector 250000 set(125000) 694.98 ns/op 479.62 ns/op 1.45
MutableVector 250000 toArray() 4.9800 ms/op 5.2159 ms/op 0.95
MutableVector 250000 iterate all - toArray() + loop 5.2992 ms/op 4.8216 ms/op 1.10
MutableVector 250000 iterate all - get(i) 1.6484 ms/op 1.6908 ms/op 0.97
Array 250000 create 4.4679 ms/op 5.3907 ms/op 0.83
Array 250000 clone - spread 2.0556 ms/op 1.5974 ms/op 1.29
Array 250000 get(125000) 1.9030 ns/op 0.82800 ns/op 2.30
Array 250000 set(125000) 1.6510 ns/op 0.87200 ns/op 1.89
Array 250000 iterate all - loop 101.11 us/op 104.33 us/op 0.97
effectiveBalanceIncrements clone Uint8Array 300000 65.555 us/op 57.571 us/op 1.14
effectiveBalanceIncrements clone MutableVector 300000 536.00 ns/op 411.00 ns/op 1.30
effectiveBalanceIncrements rw all Uint8Array 300000 203.59 us/op 201.95 us/op 1.01
effectiveBalanceIncrements rw all MutableVector 300000 125.41 ms/op 141.00 ms/op 0.89
phase0 afterProcessEpoch - 250000 vs - 7PWei 127.50 ms/op 127.36 ms/op 1.00
phase0 beforeProcessEpoch - 250000 vs - 7PWei 55.073 ms/op 56.600 ms/op 0.97
altair processEpoch - mainnet_e81889 521.66 ms/op 509.27 ms/op 1.02
mainnet_e81889 - altair beforeProcessEpoch 93.403 ms/op 84.140 ms/op 1.11
mainnet_e81889 - altair processJustificationAndFinalization 26.900 us/op 19.516 us/op 1.38
mainnet_e81889 - altair processInactivityUpdates 6.5303 ms/op 6.6626 ms/op 0.98
mainnet_e81889 - altair processRewardsAndPenalties 58.938 ms/op 60.915 ms/op 0.97
mainnet_e81889 - altair processRegistryUpdates 4.3270 us/op 3.2210 us/op 1.34
mainnet_e81889 - altair processSlashings 1.2480 us/op 525.00 ns/op 2.38
mainnet_e81889 - altair processEth1DataReset 952.00 ns/op 1.1040 us/op 0.86
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3166 ms/op 1.4382 ms/op 0.92
mainnet_e81889 - altair processSlashingsReset 4.4080 us/op 6.2390 us/op 0.71
mainnet_e81889 - altair processRandaoMixesReset 8.1000 us/op 7.8010 us/op 1.04
mainnet_e81889 - altair processHistoricalRootsUpdate 1.1020 us/op 1.1510 us/op 0.96
mainnet_e81889 - altair processParticipationFlagUpdates 2.3640 us/op 3.1530 us/op 0.75
mainnet_e81889 - altair processSyncCommitteeUpdates 1.2770 us/op 1.2470 us/op 1.02
mainnet_e81889 - altair afterProcessEpoch 130.65 ms/op 130.29 ms/op 1.00
capella processEpoch - mainnet_e217614 4.3870 s/op 2.6272 s/op 1.67
mainnet_e217614 - capella beforeProcessEpoch 866.40 ms/op 627.06 ms/op 1.38
mainnet_e217614 - capella processJustificationAndFinalization 41.774 us/op 33.808 us/op 1.24
mainnet_e217614 - capella processInactivityUpdates 28.937 ms/op 31.619 ms/op 0.92
mainnet_e217614 - capella processRewardsAndPenalties 843.32 ms/op 677.42 ms/op 1.24
mainnet_e217614 - capella processRegistryUpdates 41.437 us/op 41.634 us/op 1.00
mainnet_e217614 - capella processSlashings 1.7030 us/op 833.00 ns/op 2.04
mainnet_e217614 - capella processEth1DataReset 1.4340 us/op 1.0700 us/op 1.34
mainnet_e217614 - capella processEffectiveBalanceUpdates 7.3965 ms/op 4.6487 ms/op 1.59
mainnet_e217614 - capella processSlashingsReset 8.5390 us/op 4.8890 us/op 1.75
mainnet_e217614 - capella processRandaoMixesReset 16.950 us/op 8.6390 us/op 1.96
mainnet_e217614 - capella processHistoricalRootsUpdate 1.7300 us/op 1.3750 us/op 1.26
mainnet_e217614 - capella processParticipationFlagUpdates 6.3670 us/op 4.1790 us/op 1.52
mainnet_e217614 - capella afterProcessEpoch 632.93 ms/op 379.04 ms/op 1.67
phase0 processEpoch - mainnet_e58758 817.16 ms/op 599.06 ms/op 1.36
mainnet_e58758 - phase0 beforeProcessEpoch 296.58 ms/op 166.13 ms/op 1.79
mainnet_e58758 - phase0 processJustificationAndFinalization 37.537 us/op 28.199 us/op 1.33
mainnet_e58758 - phase0 processRewardsAndPenalties 92.762 ms/op 68.694 ms/op 1.35
mainnet_e58758 - phase0 processRegistryUpdates 26.958 us/op 15.217 us/op 1.77
mainnet_e58758 - phase0 processSlashings 2.1620 us/op 893.00 ns/op 2.42
mainnet_e58758 - phase0 processEth1DataReset 1.3760 us/op 858.00 ns/op 1.60
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.8011 ms/op 1.3425 ms/op 1.34
mainnet_e58758 - phase0 processSlashingsReset 6.8340 us/op 6.2640 us/op 1.09
mainnet_e58758 - phase0 processRandaoMixesReset 11.221 us/op 8.2260 us/op 1.36
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.9160 us/op 1.2270 us/op 1.56
mainnet_e58758 - phase0 processParticipationRecordUpdates 11.431 us/op 5.3380 us/op 2.14
mainnet_e58758 - phase0 afterProcessEpoch 122.57 ms/op 106.84 ms/op 1.15
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.1357 ms/op 1.3809 ms/op 1.55
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.9844 ms/op 2.5580 ms/op 1.17
altair processInactivityUpdates - 250000 normalcase 30.664 ms/op 23.537 ms/op 1.30
altair processInactivityUpdates - 250000 worstcase 35.670 ms/op 27.556 ms/op 1.29
phase0 processRegistryUpdates - 250000 normalcase 26.538 us/op 13.541 us/op 1.96
phase0 processRegistryUpdates - 250000 badcase_full_deposits 630.85 us/op 485.80 us/op 1.30
phase0 processRegistryUpdates - 250000 worstcase 0.5 275.03 ms/op 152.96 ms/op 1.80
altair processRewardsAndPenalties - 250000 normalcase 72.558 ms/op 86.641 ms/op 0.84
altair processRewardsAndPenalties - 250000 worstcase 82.412 ms/op 74.659 ms/op 1.10
phase0 getAttestationDeltas - 250000 normalcase 13.877 ms/op 11.400 ms/op 1.22
phase0 getAttestationDeltas - 250000 worstcase 13.420 ms/op 12.472 ms/op 1.08
phase0 processSlashings - 250000 worstcase 2.9867 ms/op 3.5318 ms/op 0.85
altair processSyncCommitteeUpdates - 250000 186.80 ms/op 201.84 ms/op 0.93
BeaconState.hashTreeRoot - No change 269.00 ns/op 332.00 ns/op 0.81
BeaconState.hashTreeRoot - 1 full validator 151.33 us/op 179.33 us/op 0.84
BeaconState.hashTreeRoot - 32 full validator 1.7904 ms/op 2.3137 ms/op 0.77
BeaconState.hashTreeRoot - 512 full validator 18.638 ms/op 33.232 ms/op 0.56
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 214.59 us/op 362.76 us/op 0.59
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 3.8246 ms/op 5.3456 ms/op 0.72
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 37.912 ms/op 51.508 ms/op 0.74
BeaconState.hashTreeRoot - 1 balances 181.63 us/op 241.98 us/op 0.75
BeaconState.hashTreeRoot - 32 balances 1.7916 ms/op 1.9434 ms/op 0.92
BeaconState.hashTreeRoot - 512 balances 14.319 ms/op 17.469 ms/op 0.82
BeaconState.hashTreeRoot - 250000 balances 273.53 ms/op 310.96 ms/op 0.88
aggregationBits - 2048 els - zipIndexesInBitList 63.828 us/op 86.873 us/op 0.73
byteArrayEquals 32 56.774 ns/op 61.460 ns/op 0.92
Buffer.compare 32 64.425 ns/op 71.149 ns/op 0.91
byteArrayEquals 1024 1.6340 us/op 1.6045 us/op 1.02
Buffer.compare 1024 78.697 ns/op 79.815 ns/op 0.99
byteArrayEquals 16384 26.313 us/op 25.945 us/op 1.01
Buffer.compare 16384 272.83 ns/op 297.95 ns/op 0.92
byteArrayEquals 123687377 203.12 ms/op 198.77 ms/op 1.02
Buffer.compare 123687377 10.199 ms/op 8.9065 ms/op 1.15
byteArrayEquals 32 - diff last byte 63.407 ns/op 57.903 ns/op 1.10
Buffer.compare 32 - diff last byte 68.222 ns/op 61.181 ns/op 1.12
byteArrayEquals 1024 - diff last byte 1.8124 us/op 1.5391 us/op 1.18
Buffer.compare 1024 - diff last byte 78.291 ns/op 73.796 ns/op 1.06
byteArrayEquals 16384 - diff last byte 27.894 us/op 24.434 us/op 1.14
Buffer.compare 16384 - diff last byte 308.28 ns/op 289.38 ns/op 1.07
byteArrayEquals 123687377 - diff last byte 196.79 ms/op 196.83 ms/op 1.00
Buffer.compare 123687377 - diff last byte 10.830 ms/op 9.5569 ms/op 1.13
byteArrayEquals 32 - random bytes 7.8930 ns/op 7.4800 ns/op 1.06
Buffer.compare 32 - random bytes 71.060 ns/op 68.692 ns/op 1.03
byteArrayEquals 1024 - random bytes 7.7380 ns/op 7.5270 ns/op 1.03
Buffer.compare 1024 - random bytes 69.990 ns/op 67.209 ns/op 1.04
byteArrayEquals 16384 - random bytes 7.7820 ns/op 7.7450 ns/op 1.00
Buffer.compare 16384 - random bytes 70.873 ns/op 68.451 ns/op 1.04
byteArrayEquals 123687377 - random bytes 12.670 ns/op 11.070 ns/op 1.14
Buffer.compare 123687377 - random bytes 81.760 ns/op 77.480 ns/op 1.06
regular array get 100000 times 45.205 us/op 37.262 us/op 1.21
wrappedArray get 100000 times 37.989 us/op 37.472 us/op 1.01
arrayWithProxy get 100000 times 16.333 ms/op 15.616 ms/op 1.05
ssz.Root.equals 58.599 ns/op 53.209 ns/op 1.10
byteArrayEquals 56.235 ns/op 52.072 ns/op 1.08
Buffer.compare 13.688 ns/op 12.205 ns/op 1.12
shuffle list - 16384 els 7.9502 ms/op 7.3010 ms/op 1.09
shuffle list - 250000 els 115.99 ms/op 112.58 ms/op 1.03
processSlot - 1 slots 20.407 us/op 20.944 us/op 0.97
processSlot - 32 slots 4.2548 ms/op 4.4788 ms/op 0.95
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 68.999 ms/op 63.528 ms/op 1.09
getCommitteeAssignments - req 1 vs - 250000 vc 2.8458 ms/op 2.5599 ms/op 1.11
getCommitteeAssignments - req 100 vs - 250000 vc 4.2147 ms/op 3.7874 ms/op 1.11
getCommitteeAssignments - req 1000 vs - 250000 vc 4.7806 ms/op 4.2682 ms/op 1.12
findModifiedValidators - 10000 modified validators 818.79 ms/op 593.09 ms/op 1.38
findModifiedValidators - 1000 modified validators 739.05 ms/op 460.44 ms/op 1.61
findModifiedValidators - 100 modified validators 561.22 ms/op 428.21 ms/op 1.31
findModifiedValidators - 10 modified validators 501.66 ms/op 439.22 ms/op 1.14
findModifiedValidators - 1 modified validators 488.20 ms/op 464.76 ms/op 1.05
findModifiedValidators - no difference 494.93 ms/op 463.91 ms/op 1.07
compare ViewDUs 4.7920 s/op 5.1548 s/op 0.93
compare each validator Uint8Array 1.8206 s/op 1.8795 s/op 0.97
compare ViewDU to Uint8Array 1.3669 s/op 1.6007 s/op 0.85
migrate state 1000000 validators, 24 modified, 0 new 887.14 ms/op 999.58 ms/op 0.89
migrate state 1000000 validators, 1700 modified, 1000 new 1.1777 s/op 1.2471 s/op 0.94
migrate state 1000000 validators, 3400 modified, 2000 new 1.3270 s/op 1.7381 s/op 0.76
migrate state 1500000 validators, 24 modified, 0 new 735.47 ms/op 1.1824 s/op 0.62
migrate state 1500000 validators, 1700 modified, 1000 new 1.0288 s/op 1.4320 s/op 0.72
migrate state 1500000 validators, 3400 modified, 2000 new 1.3840 s/op 1.7322 s/op 0.80
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.0800 ns/op 5.5700 ns/op 0.91
state getBlockRootAtSlot - 250000 vs - 7PWei 808.82 ns/op 1.0788 us/op 0.75
computeProposers - vc 250000 10.891 ms/op 11.577 ms/op 0.94
computeEpochShuffling - vc 250000 115.43 ms/op 116.62 ms/op 0.99
getNextSyncCommittee - vc 250000 198.11 ms/op 191.85 ms/op 1.03
computeSigningRoot for AttestationData 32.070 us/op 31.153 us/op 1.03
hash AttestationData serialized data then Buffer.toString(base64) 2.4843 us/op 2.6651 us/op 0.93
toHexString serialized data 1.4373 us/op 1.7693 us/op 0.81
Buffer.toString(base64) 264.23 ns/op 286.99 ns/op 0.92

by benchmarkbot/action

@wemeetagain
Copy link
Member

🎉 This PR is included in v1.13.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants